package com.soc.erp.index;

import java.util.Enumeration;

import org.apache.jasper.tagplugins.jstl.core.Out;
import org.nature.framework.annotation.Service;
import org.nature.framework.bean.Page;
import org.nature.framework.cache.NatureContext;
import org.nature.framework.core.NatureService;

/**
 * 用户服务类
 * 
 * 1、服务类，为了开发简单可以继承框架中的NatureService（非必需），添加@Service注解即可 
 * 2、事物控制可以通过@Tx进行急速实现
 * 3、如果某些业务多读少写则建议使用缓存，使用方法只需传入缓存名称即可，如果缓存有配置则使用，否则使用默认配置。 
 * 4、所有业务逻辑建议放在Service层
 *
 */

@Service
public class IService extends NatureService {

	// @Tx(level=Connection.TRANSACTION_READ_COMMITTED)
	// public int delete(NatureMap natureMap) {
	// delete(natureMap);
	// return 1;
	// }

	public String apendParamsEncoded(Page page) {
		StringBuffer sb = new StringBuffer();
		Enumeration<String> parameterNames = NatureContext.getRequest().getParameterNames();
		while (parameterNames.hasMoreElements()) {
			String name = parameterNames.nextElement();
			if (!name.contains(page.getString("pageName", "page") + ".")) {
				String value = NatureContext.getRequest().getParameter(name);
				try {
					value = java.net.URLEncoder.encode(value, "UTF-8");
				} catch (Exception ex) {
				}
				if (value != null) {
					sb.append("&").append(name).append("=").append(value);
				}
			}
		}
		return sb.toString();
	}

	public void jsPage(Page page, String cont) {
		String uri = NatureContext.getRequest().getRequestURI();
		String params = apendParamsEncoded(page); // page.apendParams();
		String href = "window.location.href = \"" + uri + "?page.pageNum=\" + obj.curr + \"" + params + "\";";
		
		
		String result = String.format("laypage({\n\t\tskin: '#0080c0',\n\t\t\tcont: '%s',\n\t\t\tpages: %d,\n\t\t\tskip: true,\n\t\t\tcurr: %d,\n\t\t\tjump: function(obj, first){\n\t\t\t\tif (!first)\n\t\t\t\t\t%s\n\t\t\t}});", cont, page.getInt("pageCnt"), page.getInt("pageNum"), href);
		//System.out.println(result);
		
		page.put("jsPage", result);
	}
	
	public String sha1(String str) {
		return org.apache.commons.codec.digest.DigestUtils.sha1Hex("bcdf73918b498ffe0f0d7ccdb012464aa3bd3e14" + str);
	}
}
